package com.example.AIstudy.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.AIstudy.DTO.ProsetDTO;
import com.example.AIstudy.domain.Exercise;
import com.example.AIstudy.domain.Liked;
import com.example.AIstudy.domain.ProSet;
import com.example.AIstudy.exception.AIstudyException;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;
import java.util.Map;

public interface ProSetService extends IService<ProSet> {

    //新增一个套题的信息，并且实现id回填
    void insertProSet(ProSet proSet) throws AIstudyException;


    //分页获取套题的信息，这里可以直接封装套题所包含题的id
    public IPage<ProSet> findProset(Map<String,Object> condition, Integer pageNum, Integer pageSize);


    //分页获取套题的信息，这里可以直接封装套题所包含题的id
    public ProSet findProsetByID(Integer prosetID);

    //分页获取套题的信息，这里可以直接封装套题所包含题的id
    public void updateProset(ProSet proSet) throws AIstudyException;


    //分页获取套题的信息，这里可以直接封装套题所包含题的id
    public void deleteProset(int prosetID) throws AIstudyException;


    //获取套题的所有单题、作文和翻译
    public List<Exercise> findProsetSingleExe(int prosetID,String category);

    //获取套题的所有大题（包含多道小题）
    public List<Exercise> findProsetNoSingleExe(int prosetID,String catogory);

    //点赞套题
    void insertLiked(Liked liked)throws AIstudyException;
    public void insertProsetDetail(@ApiParam("套题的细节信息")@RequestBody ProsetDTO prosetDTO) throws AIstudyException;

    public void updateProsetDetail(@ApiParam("套题的细节信息")@RequestBody ProsetDTO prosetDTO) throws AIstudyException;

}
